// 两根线
// 同步：组件 commit -> mutations -> state
// 异步： 组件 dispatch -> actions -> commit -> mutations -> state
import { constantRoutes, asyncRoutes } from '@/router'
export default {
  // 开启命名空间
  namespaced: true,
  // 放数据的地方
  state: {
    routes: constantRoutes
  },
  // 相当于组件中计算属性
  getters: {},
  // 这个是唯一修改state中数据地方
  mutations: {
    // setCount(state) {}
    setRoutes(state, selectedRoutes) {
      state.routes = [...state.routes, ...selectedRoutes]// 动静结合
    }
  },
  // 写异步的ajax的地方
  actions: {
    // store.commit()
    // getData(store){}
    filterRoute(store, menus) {
      const selectedRoutes = asyncRoutes.filter(item => menus.includes(item.name))
      store.commit('setRoutes', selectedRoutes)
      return selectedRoutes
    }
  }
}
